Чисельні методи розв’язування системи лінійних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут післядипломної освіти
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Чисельні методи

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Інститут післядипломної освіти ЗВІТ Про виконання лабораторної роботи №2 «Чисельні методи розв’язування системи лінійних рівнянь» з дисципліни «Чисельні методи» Мета роботи: ознайомлення на практиці з прямими методами розв’язування систем лінійних алгебраїчних рівнянь. Теоретичні відомості Метод Гаусса, також званий методом покрокового виключення невідомих змінних, названий ім’ям видатного німецького вченого К.Ф. Гаусса, ще за життя отримав неофіційний титул “короля математики”. Однак даний метод був відомий задовго до зародження європейської цивілізації, ще в I ст. до н. е.. стародавні китайські вчені використовували його в своїх працях. Метод Гаусса є класичним способом вирішення систем лінійних алгебраїчних рівнянь (СЛАР). Він ідеальний для швидкого вирішення обмежених за розміром матриць. Сам метод складається з двох ходів: прямого і зворотного. Прямим ходом називається послідовне приведення СЛАР до трикутного вигляду, тобто обнулення значень, що знаходяться під головною діагоналлю. Зворотний хід передбачає послідовне знаходження значень змінних, висловлюючи кожну змінну через попередню. Навчитися застосовувати на практиці метод Гаусса просто, достатньо знання елементарних правил множення, додавання і віднімання чисел. Для того щоб наочно показати алгоритм розв’язання лінійних систем даним методом, розберемо один приклад. Отже, вирішити, використовуючи метод Гаусса: x +2 y +4 z = 3  2x +6 y + 11z = 6  4x-2y-2z = -6 Нам потрібно у другій і третій рядках позбутися від змінної х. Для цього ми додаємо до них першу, помножену на -2 і -4 відповідно. Отримаємо: x +2 y +4 z = 3  2y +3 z = 0  -10y-18z = -18 Тепер 2-й рядок помножимо на 5 і додамо її до 3-ої: x +2 y +4 z = 3  2y +3 z = 0  -3z = -18  Ми привели нашу систему до трикутного вигляду. Тепер здійснюємо зворотний хід. Починаємо з останнього рядка:  -3z = -18,  z = 6. Друга строчка:  2y +3 z = 0  2y +18 = 0  2y = -18,  y = -9 Перша строчка :  x +2 y +4 z = 3  x-18 +24 = 3  x = 18-24 +3  х = -3 Підставляючи отримані значення змінних у вихідні дані, переконуємося в правильності рішення. Даний приклад може вирішуватися безліччю будь-яких інших підстановок, але відповідь повинен вийти той же самий. Буває так, що на провідній першої рядку розташовані елементи із занадто малими значеннями. Це не страшно, але досить ускладнює обчислення. Рішенням даної проблеми є метод Гауса з вибором головного елемента по стовпцю. Суть його полягає в наступному: в першому рядку відшукується максимальний по модулю елемент, той стовпець, в якому він розташований, міняють місцями з 1-м стовпцем, тобто наш максимальний елемент стає першим елементом головної діагоналі. Далі йде стандартний процес обчислення. При необхідності процедуру зміни місцями стовпців можна повторити. LU розклад матриці — представлення матриці у вигляді добутку нижньої трикутної матриці та верхньої трикутної матриці. Квадратна матриця A розміру n може бути представлена у вигляді / де L та U — нижня та верхня трикутна матриця того ж розміру. LDU розклад матриці — це представлення у вигляді / де D — діагональна матриця, а L та U є одиничними трикутними матрицями, тобто, всі їх діагональні елементи рівні одиниці. LUP розклад матриці — це представлення в формі / де L та U — нижня та верхня трикутна матриця того ж розміру, а P — матриця перестановки. Хід роботи Написати програму розв’язку системи лінійних алгебраїчних рівнянь у відповідності до варіанту: методом Гауса з вибором головного елемента;  Текст програми : #include <iostream> #include <conio.h> #include <stdio.h> #include <algorithm> using namespace std; double a[3][3], b[3][1], N; int indStovpZmaxElem; double x[3]; void enterA (); void enterB (); void enterA () // вводимо матрицю коефіціентів а { for(int j=0; j<3; j++) {for(int i=0; i<3; i++) {cout << "Vvedit ...
Антиботан аватар за замовчуванням

02.06.2014 21:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини